[Chapter 34] 34.5 Option Argument Types
Author: Bryan Costales & Eric Allman
Date: 1999-01-06T21:01:17Z

#

| Chapter 34 Options |

## 34.5 Option Argument Types

The second column of Table 34.4 shows the type of the argument for each option. The allowable types are the following:

Boolean

  A Boolean-type argument can have only one of two possible values: true or false. If the Boolean argument is present, its first letter is compared to the four letters `T`, `t`, `Y`, and `y`. If that first letter matches any of those four, the option is set to true; otherwise, it is set to false. If a Boolean argument is absent, the option defaults to true. For example,

  >     Oc                           Boolean absent, `c' is set true.
  >     OcTrue                       Boolean=`T'rue, `c' is set true.
  >     OcFalse                      Boolean=`F'alse, `c' is set false.

  and beginning with V8.7, you can also do this:

  >     O HoldExpensive              Boolean absent, option is set true.
  >     O HoldExpensive=True         Boolean=`T'rue, option is set true.
  >     O HoldExpensive=False        Boolean=`F'alse, option is set false.

Character

  A character type is a single ASCII character. Options that take a single character as an argument may also take a whole word or sentence, but in that case, only the first character is recognized:

  >     Odb                          b for background mode
  >     Odbackground                 same

  Beginning with V8.7 the same form looks like this:

  >     O DeliveryMode=b             b for background mode
  >     O DeliveryMode=background    same

  The argument is case-sensitive, that is, the character `b` is considered to be different from the character `B`:

  >     Odb                          b for background mode
  >     OdB                          meaningless

Numeric

  A numeric type is an ASCII representation of an integer value. It may be positive, zero, or negative. The base is determined after any leading sign is handled. A leading 0 causes the octal base to be used. A leading 0x or 0X causes the hexadecimal base to be used. Otherwise, a decimal base is used (see atoi(3)). Decimal is best to use for options like the hop count (option `h`):

  >     Oh15                         decimal for hop count
  >     O MaxHopCount=15             decimal for hop count V8.7 style

String

  A string type is a line of ASCII text. A string is all text from the single-character option name up to the end of the line. If the following line is a continuation line (one that begins with a tab or a space), it is joined (appended) to the string. Prior to V8 the maximum length of a string was defined by MAXLINE in conf.h. Beginning with V8 sendmail, strings may be of virtually unlimited length. If the string is quoted, the quotation marks are not stripped by sendmail:

  >     OA/etc/aliases               location of the aliases file
  >     OA"/etc/aliases"             bad, quotes are retained

  Beginning with V8.7, the string is considered to begin at the first nonspace character following the `=` character of a multicharacter option declaration:

  >     O AliasFile =  /etc/aliases

  >                    from here

Octal

  An octal type is like the numeric type above but is always interpreted as an octal (base 8) number even if the leading zero is absent. This type is specially designed for file permissions:

  >     OF0600                       octal for file permissions
  >     OF600                        octal even without the leading zero
  >     O TempFileMode=0600          octal for file permissions V8.7 style

Time

  A time type is the expression of a period of time. Time is expressed as a number modified by a trailing letter. The recognized letters (shown in Table 34.5 determine what the number means. For example, `24h` means 24 hours, and `15m` means 15 minutes.

  Table 34.5: Option Time Argument Units
  Letter | Units
  --- | ---
  `s` | Seconds
  `m` | Minutes
  `h` | Hours
  `d` | Days
  `w` | Weeks

  Times may be mixed; for example, `1h30m` means one hour and 30 minutes. If the letter modifier is missing, pre-V8 versions of sendmail default the time to days:

  >     Or2h                        SMTP timeout is 2 hours
  >     OT2                         life in queue is 2 days

  V8 sendmail uses different default units depending on the specific option. For consistent results, always include the units for all versions of sendmail. Prior to V8.7, unrecognized unit characters (such as `j` when you really meant `h`) would silently default to days. Beginning with V8.7, unrecognized unit characters cause sendmail to print the following error and default the units to those specified by the particular option:

  >     Invalid time unit `character'

34.4 Alphabetical Table of All Options |  | 34.6 Interrelating Options